﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Conexion;
using System.Data.SqlClient;
using AccesoDatos.Objetos;


namespace AccesoDatos.Manejador
{
    public class Manejador_Finiquitos
    {
        ClsConexion conexion = new ClsConexion();
        //OBTIENE LOS DIAS QUE LE CORRESPONDEN DE VACACIONES
        public objVacaciones ObtieneDiasCorrespondietes(int id, DateTime fecha_ingreso)
        {
            try
            {
                objRH obj = new objRH();
                objVacaciones objV = new objVacaciones();

                List<ClsParametros> lista = new List<ClsParametros>();

                lista.Add(new ClsParametros("@idempleado", id.ToString()));
              //  lista.Add(new ClsParametros("@fecha_renuncia", fecha_ingreso.ToShortDateString()));
                DataTable X = conexion.Datatable_standart("sp_RH_Finiquito_ConsultaVacaciones", lista);
                DataRow[] array = new DataRow[X.Rows.Count];
                X.Rows.CopyTo(array, 0);
                object[] Info = X.Rows[0].ItemArray;
               
                objV.Id_Vacaciones = int.Parse(Info[0].ToString().Trim());
                obj.Id_Empleado = int.Parse(Info[1].ToString().Trim());
                objV.Dias_Correspondientes = int.Parse(Info[2].ToString().Trim());
                objV.Dias_Disfrutados = int.Parse(Info[3].ToString().Trim());
                objV.Prima_Vacacional = Info[4].ToString().Trim();
                objV.Prima_Pagada =Info[5].ToString().Trim();
                objV.Dias_Acomulados =int.Parse(Info[6].ToString().Trim());
                objV.Monto_Dias_Pagar = Info[7].ToString().Trim();
                objV.Dias_Pagados =int.Parse(Info[8].ToString().Trim());

                return objV;
            }
            catch { return null; }
        }
   
        public int ObtieneDiasporLey(int anios)
        {
            try
            {
                objRH obj = new objRH();
                objVacaciones objV = new objVacaciones();

                List<ClsParametros> lista = new List<ClsParametros>();

                lista.Add(new ClsParametros("@antiguedad", anios.ToString()));

                DataTable X = conexion.Datatable_standart("sp_RH_Vacaciones_DiasporLey", lista);
                DataRow[] array = new DataRow[X.Rows.Count];
                X.Rows.CopyTo(array, 0);
                object[] Info = X.Rows[0].ItemArray;

                objV.Dias_Correspondientes = int.Parse(Info[0].ToString().Trim());
                return objV.Dias_Correspondientes;
            }
            catch { return 1; }
        }

        public DataTable ObtieneVacaciones_NoPagadas(int id, double salario)
        {
            List<ClsParametros> lista = new List<ClsParametros>();

            lista.Add(new ClsParametros("@idempleado", id.ToString()));
            lista.Add(new ClsParametros("@salario", salario.ToString()));
            DataTable X = conexion.Datatable_standart("sp_RH_Finiquito_ConsultaVacaciones", lista);
     
            return X;
        }

        public DataTable ObtienePrimas_NoPagadas(int id)
        {
            List<ClsParametros> lista = new List<ClsParametros>();

            lista.Add(new ClsParametros("@id_empleado", id.ToString()));
            DataTable X = conexion.Datatable_standart("sp_RH_Finiquito_Prima_Lista", lista);

            return X;
        }
      
        public double ObtieneAdeudoPrestamo(int id)
        {
            try
            {
                objFiniquito objF = new objFiniquito();
                List<ClsParametros> lista = new List<ClsParametros>();

                lista.Add(new ClsParametros("@id_empleado", id.ToString()));
                
                DataTable X = conexion.Datatable_standart("sp_RH_Finiquito_Prestamo", lista);
                DataRow[] array = new DataRow[X.Rows.Count];
                X.Rows.CopyTo(array, 0);
                object[] Info = X.Rows[0].ItemArray;

                objF.AdeudoPrestamo = double.Parse(Info[0].ToString().Trim());
                if(objF.AdeudoPrestamo!=null) return objF.AdeudoPrestamo;
                else return 0.00;
            }
            catch { return 0; }
        }

        public objFiniquito ObtieneDiasMontoVacaciones(int id)
        {
            try
            {
                objFiniquito objF = new objFiniquito();
                List<ClsParametros> lista = new List<ClsParametros>();

                lista.Add(new ClsParametros("@id_empleado", id.ToString()));

                DataTable X = conexion.Datatable_standart("sp_RH_Finiquito_Vacaciones_DiasPagados", lista);
                DataRow[] array = new DataRow[X.Rows.Count];
                X.Rows.CopyTo(array, 0);
                object[] Info = X.Rows[0].ItemArray;

                objF.DiasPagados = int.Parse(Info[0].ToString().Trim());
                objF.MontoPagado = Convert.ToDouble(Info[1].ToString().Trim());

                return objF;
            }
            catch { return null; }
        }

        public double ObtieneMontoPrima(int id)
        {
            try
            {
                objFiniquito objF = new objFiniquito();
                List<ClsParametros> lista = new List<ClsParametros>();

                lista.Add(new ClsParametros("@id_empleado", id.ToString()));

                DataTable X = conexion.Datatable_standart("sp_RH_Finiquito_Prima_Monto", lista);
                DataRow[] array = new DataRow[X.Rows.Count];
                X.Rows.CopyTo(array, 0);
                object[] Info = X.Rows[0].ItemArray;

                objF.MontoPrima = double.Parse(Info[0].ToString().Trim());
              
                return objF.MontoPrima;
            }
            catch { return 0; }
        }

        public double ObtieneMonto_Vacaciones_No_Pagadas(int id, double salario)
        {
            try
            {
                double monto;
                List<ClsParametros> lista = new List<ClsParametros>();
                lista.Add(new ClsParametros("@id_empleado", id.ToString()));
                lista.Add(new ClsParametros("@salario", salario.ToString()));
                DataTable X = conexion.Datatable_standart("sp_RH_Finiquito_Vacaciones_No_Pagadas", lista);
                DataRow[] array = new DataRow[X.Rows.Count];
                X.Rows.CopyTo(array, 0);
                object[] Info = X.Rows[0].ItemArray;

              monto = double.Parse(Info[0].ToString().Trim());
               
                return monto;
            }
            catch { return 0; }
        }  

    }
}
